package cn.tedu.weibo.controller;

import cn.tedu.weibo.mappers.WeiboMapper;
import cn.tedu.weibo.pojo.DTO.WeiboDTO;
import cn.tedu.weibo.pojo.VO.UserVO;
import cn.tedu.weibo.pojo.VO.WeiboDetailVO;
import cn.tedu.weibo.pojo.VO.WeiboVo;
import cn.tedu.weibo.pojo.entity.Weibo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;

/**
 * 微博模块控制类
 */
@RestController
@RequestMapping("/v1/weibo/")
@Api(tags = "2.微博模块")
public class WeiboController {
  @Autowired(required = false)
  private WeiboMapper weiboMapper;

    /**
     * 保存微博文本数据
     * @param weiboDTO 保存客服端请求的参数
     * @param session 比对用户是否在线
     * @return 保存状态
     */
  @PostMapping("insert")
    public int insert(@RequestBody WeiboDTO weiboDTO, HttpSession session){
    UserVO userVO=(UserVO) session.getAttribute("user");
    if(userVO ==null){
        return 2;//未登录
    }
//    发微博
    Weibo weibo=new Weibo();
    weibo.setContent(weiboDTO.getContent());
    weibo.setCreated(new Date());
    weibo.setUser_id(userVO.getId());
    weiboMapper.insert(weibo);

    return 1;
}

  /**
   * 微博列表页
   * @return 所有发布的微博
   */
  @GetMapping("selectIndex")
  public List<WeiboVo> selectIndex(){
    return weiboMapper.selectIndex();
  }

  /**
   * 微博详情页
   * @param id 接收客服端返回的微博id
   * @return 该id发布的微博
   */
  @GetMapping("selectById")
  public WeiboDetailVO selectById(int id){
    return weiboMapper.selectById(id);
  }
}
